package tech.aistar.mapper;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import tech.aistar.entity.Phone;
import java.util.List;

/**
 * Created by 张庆昇 on 2020/1/1.
 */
public interface PhoneMapper {
    /**
     * 查询所有的图书
     * @return
     */
    @Select("select * from t_xiaomiphone")
    List<Phone> findAll();


    /**
     * 根据图书的名称来进行模糊查询 - 动态sql
     * mybatis中关于sql语句的拼接问题 - mysql中的字符串concat
     *
     * #{} 和 ${}的引入变量的区别 - mybatis
     * ${} -> 开发中不允许使用 -> 容易引起我们的sql注入的问题
     * @param phoneName
     * @return
     */
    //@Select("select * from t_book where bookName like '%${bookName}%'")

    @Select("select * from t_xiaomiphone where phoneName like concat('%',#{phoneName},'%')")
    List<Phone> findByPhoneName(String phoneName);

    /**
     * 根据图书id进行删除操作
     * @param id
     */
    @Delete("delete from t_xiaomiphone where id = #{id}")
    void deleteById(Integer id);

    /**
     * 根据id查找图书
     * @param id
     * @return
     */
    @Select("select * from t_xiaomiphone where id = #{id}")
    Phone getById(Integer id);

    /**
     * 根据图书的id进行图书信息的更新
     * @param b
     */
    @Update("update t_xiaomiphone set phoneName=#{phoneName},price=#{price} where id=#{id}")
    void update(Phone b);
}
